package com.java.zhuiyun.config;


import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

/**
 * 跨域配置
 */
@Configuration//配置类注解，相当于xml中的beans标签
public class CorsConfig {

    // 当前跨域请求最大有效时长。这里默认1天
    private static final long MAX_AGE = 24 * 60 * 60;

    /**
     * 跨域过滤器
     * @return
     */
    @Bean//Bean注解，相当于xml中的bean标签
    public CorsFilter corsFilter() {//方法名即为bean的id
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();//创建跨域配置源对象
        CorsConfiguration corsConfiguration = new CorsConfiguration();//创建跨域配置对象
        corsConfiguration.addAllowedOrigin("*"); // 1 设置访问源地址
        corsConfiguration.addAllowedHeader("*"); // 2 设置访问源请求头
        corsConfiguration.addAllowedMethod("*"); // 3 设置访问源请求方法
        corsConfiguration.setMaxAge(MAX_AGE);//设置最大有效时长
        source.registerCorsConfiguration("/**", corsConfiguration); // 4 对接口配置跨域设置
        return new CorsFilter(source);//返回跨域过滤器
    }
}
